//
//  YMCommonDefs.h
//  YMIM
//
//  Created by reyzhang on 2022/3/17.
//

#ifndef YMCommonDefs_h
#define YMCommonDefs_h


static NSString *const kAuthTokenKey = @"YM_Auth_Token_Key";

/**
 * 组件连接状态码
 */
typedef NS_ENUM(NSInteger, YMConnectStatusCode) {
    YMConnectSuccess = 1,  // 连接成功
    
    YMConnectNetworkUnavailable, //网络不可用
    
    YMConnectExceedServiceLimit, //超过服务限制
    
    YMConnectInvalidAppkeyOrAppsecret  = 100, //无效的Appkey, Appsecret
    
    YMConnectInvalidTokenOrTokenExpired, //无效的token或token已过期
    
    YMConnectUserLoginOnAnotherDevice = 200, //用户在其他地方登录，被踢下线
    
    YMConnectServerDisConnect, //IM服务器断开连接
    
};



/**
 * 消息类型
 */
typedef NS_ENUM(NSInteger,YMMessageType) {
    //system
    YMMessageType_SYS_NOTICE = 1, //系统通知
    YMMessageType_SYS_HEARTBEAT = 2, //心跳
    YMMessageType_SYS_TIME = 3, //时间
    YMMessageType_SYS_GROUPNEW = 4, //新建群组
    YMMessageType_SYS_DISSGROUP = 5, //解散群组
    YMMessageType_SYS_INVITEGROUP = 6, //邀请进群
    YMMessageType_SYS_KICKGROUP = 7, //请离群组
    YMMessageType_SYS_LEAVEGROUP = 8, //离开群组
    YMMessageType_SYS_SPEAKFORBID = 9, //禁言
    YMMessageType_SYS_SPEAKRELIEVE = 10, //解除禁言
    YMMessageType_SYS_RECALL = 11, //消息被撤回
    YMMessageType_SYS_EDITGROUPNAME = 20, //修改群名称
    YMMessageType_SYS_OTHERLOGIN = 21, //账号在其他地方登录
    YMMessageType_SYS_SERVERDISCONNECT = 22, //服务器断开连接
    
    //chat
    YMMessageType_TEXT = 101, //文本
    YMMessageType_AUDIO = 102, //音频
    YMMessageType_VIDEO = 103, //视频
    YMMessageType_PICTURE = 104, //图片
    YMMessageType_FILE = 105, //文件
    
    YMMessageType_CUSTOM = 100, //自定义
};



/*!
 具体业务错误码
 */
typedef NS_ENUM(NSInteger, YMErrorCode) {
    
    YM_SUCCESS = 0, // 成功
    
    ERRORCODE_UNKNOWN = -1, // 未知错误

    SEND_MSG_ERROR = 1, // 发送消息失败
    
    JOIN_PRIVATE_CHAT_ERROR = 2, // 加入单聊失败
    
    CREATE_GROUP_ERROR = 3, // 创建群组失败
    
    GET_CONVERSATION_ERROR = 4, // 读取会话列表异常
    
    REMOVE_CONVERSATION_ERROR = 5, //删除组/会话失败
    
    GET_CONVERSATION_DETAIL_ERROR = 6, //读取会话详情异常
    
    GET_MESSAGE_ERROR = 7, // 读取消息列表异常
    
    UPDATE_USER_INFO_ERROR, // 更新用户信息失败
    
    DISMISS_GROUP_ERROR, //解散群组失败
    
    INVITE_GROUP_ERROR, //邀请进群失败
    
    TOP_CONVERSATION_ERROR, // 置顶会话失败
    
    DONOT_DISTURB_CONVERSATION_ERROR, //消息免打扰 设置失败
    
    KICK_GROUP_ERROR, //请离群组失败
    
    LEAVE_GROUP_ERROR, //用户离开群组失败
    
    GET_GROUP_LIST_ERROR, //读取群组列表异常
    
    UPDATE_GROUP_NAME_ERROR, //更新群组名称失败
    
    GET_UNREAD_MESSAGE_COUNT_ERROR, //获取未读消息数量失败
    
    GET_FRIEND_LIST_ERROR, //获取好友列表失败
    
    SEARCH_FRIEND_ERROR, //搜索好友失败
    
    GET_FRIEND_APPLY_LIST_ERROR, // 获取好友申请列表失败
    
    ADD_FRIEND_ERROR, //申请添加好友失败
    
    HANDLE_FRIEND_APPLY_ERROR, //处理好友申请失败
    
    GET_FRIEND_DETAIL_ERROR, //获取好友详情失败
    
    ADD_FRIEND_NOTE_ERROR, //添加好友备注异常
    
    DELETE_FRIEND_ERROR, //删除好友失败
    
    SEARCH_USER_ERROR, //搜索用户失败
    
    CLEAR_MESSAGE_ERROR, //清空消息失败
    
    BIND_CLIENT_ERROR, //清空消息失败
};


/*!
 会话类型
 */
typedef NS_ENUM(NSUInteger, YMConversationType) {
    ConversationType_PRIVATE = 0, //单聊，私聊
    
    ConversationType_GROUP = 1, //群组

    ConversationType_CHATROOM = 2, //聊天室

};


#endif /* YMCommonDefs_h */
